

#ifndef COOPERATORAO_INTERFACE_H
#define COOPERATORAO_INTERFACE_H

#include <stdint.h>
#include <string>
#include "app_platform/cntl_info.h"

#include "b2b2c/cooperator/po/cooperatormonitormodelpo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatorsubaccountpo_cooperator.h"	
#include <set>	
#include "b2b2c/cooperator/po/cooperatorpropo_cooperator.h"	
#include <vector>	
#include "b2b2c/cooperator/po/cooperatorbaseinfopo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatormonitormodelrulepo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatorlicensepo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatorsubpropo_cooperator.h"	
#include "b2b2c/cooperator/po/cooperatorsetpo_cooperator.h"	


namespace b2b2c
{
namespace cooperator
{
namespace ao
{

	/// 同步调用接口
	class ICooperatorAo	{
	public:
		virtual ~ICooperatorAo() {}

	public:

		/**
		 *
	 	 * 检查合作伙伴密码信息
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint64_t cooperatorId: 合作伙伴ID或合作伙伴子帐号ID，必填 				
		 *@param String cooperatorPassword: 合作伙伴密码（三次MD5加密），必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t CheckCooperatorPassWd(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& cooperatorPassword,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 删除告警模版
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint32_t cooperatorId: 合作伙伴ID或合作伙伴子帐号ID，必填 				
		 *@param uint32_t modelId: 模版ID，必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t DeleteCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				uint32_t modelId,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 获取合作伙伴基本信息，该接口没进行操作者验证和鉴权，合作伙伴敏感信息无法拉取
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint64_t cooperatorId: 合作伙伴ID或合作伙伴子帐号ID，必填 				
		 *@param String inReserve: 请求保留字 				
		 *@param String errmsg: 错误信息 		
		 *@param CooperatorBaseInfoPo cooperatorBaseInfoPo: 合作伙伴基本信息，如果传入合作伙伴ID则返回全部合作伙伴信息；如果传入合作伙伴子帐号，则只返回该合作伙伴子帐号信息 		
		 *@param String outReserve: 输出保留字 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t GetCooperatorBaseInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& inReserve,
				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 批量获取合作伙伴基本信息
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param Set cooperatorId: 合作伙伴Id_List，必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param Vector cooperatorBaseInfoPo: 批量获取的合作伙伴基本信息List 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t GetCooperatorBaseInfoList(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const std::set<uint64_t >& cooperatorId,
				const std::string& inReserve,
				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorBaseInfoPo >& cooperatorBaseInfoPo,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 根据ERP商户id查询合作伙伴ID
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint64_t icsonId: 易迅Id，必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param uint64_t cooperatorId: 获取到的合作伙伴ID 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t GetCooperatorIdByIcsonId(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t icsonId,
				const std::string& inReserve,
				std::string& errmsg,
				uint64_t& cooperatorId,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 获取合作伙伴数据加密Key
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint64_t cooperatorId: 合作伙伴ID或合作伙伴子帐号ID，必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param String sCooperatorKey: 合作伙伴数据加密Key，长度32bytes；生成规则：合作伙伴当前密码三次MD5加密后的值 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t GetCooperatorKey(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& sCooperatorKey,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 获取合作伙伴许可证信息
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint64_t cooperatorId: 合作伙伴ID或合作伙伴子帐号ID，必填 				
		 *@param Set licenseType: 许可证类型，为空则为全部许可证列表 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param Vector cooperatorLicensePo: 合作伙伴许可证信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t GetCooperatorLicense(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::set<uint8_t >& licenseType,
				const std::string& inReserve,
				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorLicensePo >& cooperatorLicensePo,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 通过模版ID获取告警模版
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint32_t cooperatorId: 合作伙伴ID或合作伙伴子帐号ID，必填 				
		 *@param uint32_t modelId: 模版ID，必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param CooperatorMonitorModelPo CooperatorMonitorModelPo: 告警模版 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t GetCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				uint32_t modelId,
				const std::string& inReserve,
				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorMonitorModelPo& CooperatorMonitorModelPo,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 获取价格告警模版列表
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint32_t cooperatorId: 合作伙伴ID或合作伙伴子帐号ID，必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param Vector CooperatorMonitorModelPo: 告警模版列表 		
		 *@param String rulesruleJson: 规则的规则json字符串 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t GetCooperatorMonitorModelList(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				const std::string& inReserve,
				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorMonitorModelPo >& CooperatorMonitorModelPo,
				std::string& rulesruleJson,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 支付物流系统设置卖家的次日达，货到付款等属性位接口
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint64_t option: 选项,暂未用 				
		 *@param CooperatorProPo cooperatorProPo: 合作伙伴属性位设置，包括合作伙伴ID、设置和取消属性值设置的参数（设置和取消的属性位不能冲突），必填 				
		 *@param String inReserve: 请求保留字 				
		 *@param String errmsg: 错误信息 		
		 *@param CooperatorBaseInfoPo cooperatorBaseInfoPo: bitset作为回autogen生成的代码有问题，这里定义成po的形式，请取其中的cooperatorproperty属性值字段 		
		 *@param String outReserve: 输出保留字 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t LogisticsSetCooperatorPro(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t option,
				const b2b2c::cooperator::po::CCooperatorProPo& cooperatorProPo,
				const std::string& inReserve,
				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 从管理后台等其他业务同步过来的设置合作伙伴属性位等信息的接口
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint64_t option: 选项,暂未用 				
		 *@param CooperatorSetPo cooperatorSetPo: 合作伙伴属性位设置，包括合作伙伴ID、设置和取消属性值设置的参数（设置和取消的属性位不能冲突）等，必填 				
		 *@param String inReserve: 请求保留字 				
		 *@param String errmsg: 错误信息 		
		 *@param CooperatorBaseInfoPo cooperatorBaseInfoPo: 设置合作伙伴信息成功后，返回合作伙伴全部的基本信息 		
		 *@param String outReserve: 输出保留字 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t SetCooperatorInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t option,
				const b2b2c::cooperator::po::CCooperatorSetPo& cooperatorSetPo,
				const std::string& inReserve,
				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 设置合作伙伴密码信息
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param uint64_t cooperatorId: 合作伙伴ID或合作伙伴子帐号ID，必填 				
		 *@param String cooperatorOldPassword: 合作伙伴老密码（三次MD5加密），必填 				
		 *@param String cooperatorNewPassword: 合作伙伴新密码（三次MD5加密），必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t SetCooperatorPassWd(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& cooperatorOldPassword,
				const std::string& cooperatorNewPassword,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 更新【新增和修改】合作伙伴基本信息
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param CooperatorBaseInfoPo cooperatorBaseInfoPo: 合作伙伴基本信息，必填；新增时，必须新增合作伙伴信息，然后增加子帐号信息；必须先新增合作伙伴；如只更新合作伙伴子帐号信息，则只需传入合作伙伴ID和对应的子帐号信息列表 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t UpdateCooperatorBaseInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 更新【新增和修改】合作伙伴许可证信息
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param CooperatorLicensePo cooperatorLicensePo: 合作伙伴许可证信息，必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t UpdateCooperatorLicense(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorLicensePo& cooperatorLicensePo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	) = 0;

		/**
		 *
	 	 * 新增或者更新告警模版
		 *
		 *@param String machineKey: 机器码，必填 				
		 *@param String source: 调用来源，必填 				
		 *@param uint32_t sceneId: 场景id，必填 				
		 *@param CooperatorMonitorModelPo CooperatorMonitorModelPo: 告警模版，必填 				
		 *@param String inReserve: 请求保留字段 				
		 *@param String errmsg: 错误信息 		
		 *@param String outReserve: 请求保留字段 		
		 *
		 *@return  uint32_t : 0(成功) 其它失败
 	     *
		 */
	    virtual uint32_t UpdateCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorMonitorModelPo& CooperatorMonitorModelPo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	) = 0;
	};

	///异步调用接口
	class ICooperatorAoAsyc
	{
	public:
		virtual ~ICooperatorAoAsyc() {}
	public:
		virtual uint32_t SendCheckCooperatorPassWd(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& cooperatorPassword,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvCheckCooperatorPassWd(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendDeleteCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				uint32_t modelId,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvDeleteCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendGetCooperatorBaseInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvGetCooperatorBaseInfo(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendGetCooperatorBaseInfoList(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const std::set<uint64_t >& cooperatorId,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvGetCooperatorBaseInfoList(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorBaseInfoPo >& cooperatorBaseInfoPo,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendGetCooperatorIdByIcsonId(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t icsonId,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvGetCooperatorIdByIcsonId(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				uint64_t& cooperatorId,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendGetCooperatorKey(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvGetCooperatorKey(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::string& sCooperatorKey,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendGetCooperatorLicense(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::set<uint8_t >& licenseType,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvGetCooperatorLicense(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorLicensePo >& cooperatorLicensePo,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendGetCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				uint32_t modelId,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvGetCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorMonitorModelPo& CooperatorMonitorModelPo,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendGetCooperatorMonitorModelList(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t cooperatorId,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvGetCooperatorMonitorModelList(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::vector<b2b2c::cooperator::po::CCooperatorMonitorModelPo >& CooperatorMonitorModelPo,
				std::string& rulesruleJson,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendLogisticsSetCooperatorPro(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t option,
				const b2b2c::cooperator::po::CCooperatorProPo& cooperatorProPo,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvLogisticsSetCooperatorPro(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendSetCooperatorInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t option,
				const b2b2c::cooperator::po::CCooperatorSetPo& cooperatorSetPo,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvSetCooperatorInfo(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendSetCooperatorPassWd(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint64_t cooperatorId,
				const std::string& cooperatorOldPassword,
				const std::string& cooperatorNewPassword,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvSetCooperatorPassWd(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendUpdateCooperatorBaseInfo(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorBaseInfoPo& cooperatorBaseInfoPo,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvUpdateCooperatorBaseInfo(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendUpdateCooperatorLicense(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorLicensePo& cooperatorLicensePo,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvUpdateCooperatorLicense(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::string& outReserve
				) = 0;
		virtual uint32_t SendUpdateCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				const b2b2c::cooperator::po::CCooperatorMonitorModelPo& CooperatorMonitorModelPo,
				const std::string& inReserve
				) = 0;
		virtual uint32_t RecvUpdateCooperatorMonitorModel(
				const CCntlInfo& rCntlInfo,

				std::string& errmsg,
				std::string& outReserve
				) = 0;
	};
	
	
}
}
}

#endif /*COOPERATORAO_INTERFACE_H*/
